<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Object.create</title>
</head>
<body>
  <script>
    //声明一个对象
    var car = {
      name: '汽车',
      xx: 'xx'
    };

    //创建一个新对象
    var byd = Object.create(car, {
      //brand 是属性名
      brand: {
        value: '比亚迪',
        //设置该属性值是否可以被修改 默认值为 false 不允许
        writable: false,
        //设置该属性是否可以删除, 默认值为 false 不允许
        configurable: false,
        //设置该属性是否可以枚举, 遍历 默认值为 false
        enumerable: true 
      },
      //新的属性 price
      price: {
        // getter(获取器) 和 setter(设置器)
        //当获取 byd 的 price 属性时自动执行, 并返回函数的返回值
        get: function(){
          // return price的属性值
          // return 100000;// 返回值将作为 price 的属性值
          return this.innerPrice;
        },
        //当设置 byd 的 price 属性值的时候, 自动执行, 会接收到设置的新值
        //在 get 和 set 方法中, this 是指向当前对象(byd)
        set: function(newV){
          //为实例对象设置新属性 innerPrice (自定义属性)
          this.innerPrice = newV;
        },
      }
    });
    //尝试修改
    // byd.brand = 'BYD';
    //尝试删除
    // delete byd.brand;
    //遍历对象
    // for(var i in byd){
    //   console.log(i);
    // }

    // console.log(byd);

    //获取 price 属性
    // console.log(byd.price);
    
    //重新赋值 price
    byd.price = 200000;
    console.log(byd.price);


  </script>
</body>
</html>